# -- coding = utf-8 --
# @Time : 2021/4/19 21:44
# @Author : yk
# @File : merge.py
# @Software: PyCharm
import glob
from numpy import *
import xlrd
import xlwt

# 下面这些变量需要您根据自己的具体情况选择
col = ["招聘职位名称","公司所在地区","发布时间","薪资待遇","学历要求","公司名称","公司类型","公司规模","职位标签","公司福利"]
# 在哪里搜索多个表格
filelocation = "C:\\Users\\yk\\Desktop\\爬虫数据\\软件工程\\"
# 当前文件夹下搜索的文件名后缀
fileform = "xls"
# 将合并后的表格存放到的位置
filedestination = "C:\\Users\\yk\\Desktop\\爬虫数据\\软件工程\\"
# 合并后的表格命名为file
file = "软件工程"

# 首先查找默认文件夹下有多少文档需要整合
import glob
from numpy import *

filearray = []
for filename in glob.glob(filelocation + "*." + fileform):
    filearray.append(filename)
    # 以上是从Documents文件夹下读取所有excel表格，并将所有的名字存储到列表filearray
print("在默认文件夹下有%d个文档哦" % len(filearray))
ge = len(filearray)
matrix = [None] * ge
# 实现读写数据

# 下面是将所有文件读数据到三维列表cell[][][]中（不包含表头）
import xlrd

for i in range(ge):
    fname = filearray[i]
    bk = xlrd.open_workbook(fname)
    try:
        sh = bk.sheet_by_name("Sheet1")
    except:
        print("在文件%s中没有找到sheet1，读取文件数据失败,要不你换换表格的名字？" % fname)
    nrows = sh.nrows
    matrix[i] = [0] * (nrows - 1)

    ncols = sh.ncols
    for m in range(nrows - 1):
        matrix[i][m] = ["0"] * ncols

    for j in range(1, nrows):
        for k in range(0, ncols):
            matrix[i][j - 1][k] = sh.cell(j, k).value
            # 下面是写数据到新的表格test.xls中哦
import xlwt

filename = xlwt.Workbook()
sheet = filename.add_sheet("Sheet1")
# 下面是把表头写上
for i in range(0, len(col)):
    sheet.write(0, i, col[i])
    # 求和前面的文件一共写了多少行
zh = 1
for i in range(ge):
    for j in range(len(matrix[i])):
        for k in range(len(matrix[i][j])):
            sheet.write(zh, k, matrix[i][j][k])
        zh = zh + 1
print("我已经将%d个文件合并成1个文件，并命名为%s.xls.快打开看看正确不？" % (ge, file))
filename.save(filedestination + file + ".xls")
